#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

struct node {int l,r;}t[500];
int n,ans=0x7f7f7f,dp[200],f[200],sum[200];

void dfs(int i)
{
    sum[i]+=f[i];
    if(t[i].l)
    {
        dfs(t[i].l);
        sum[i]+=sum[t[i].l];
        dp[i]+=sum[t[i].l]+dp[t[i].l];
    }
    if(t[i].r)
    {
        dfs(t[i].r);
        sum[i]+=sum[t[i].r];
        dp[i]+=sum[t[i].r]+dp[t[i].r];
    }
}
void change(int i)
{
    if(t[i].l)
    {        
        int all=sum[i];
        int all1=sum[t[i].l];
        int all2=dp[i];
        int all3=dp[t[i].l];
        dp[i]=dp[i]-dp[t[i].l]-sum[t[i].l];
        sum[i]=all-sum[t[i].l];
        sum[t[i].l]=all;
        dp[t[i].l]=sum[i]+dp[t[i].l]+dp[i];
        ans=min(ans,dp[t[i].l]);
        change(t[i].l);
        sum[i]=all;
        sum[t[i].l]=all1;
        dp[i]=all2;
        dp[t[i].l]=all3;
    }
    if(t[i].r)
    {
        int all=sum[i];
        int all1=sum[t[i].r];
        int all2=dp[i];
        int all3=dp[t[i].r];
        dp[i]=dp[i]-dp[t[i].r]-sum[t[i].r];
        sum[i]=all-sum[t[i].r];
        sum[t[i].r]=all;
        dp[t[i].r]=sum[i]+dp[t[i].r]+dp[i];
        ans=min(ans,dp[t[i].r]);
        change(t[i].r);
        sum[i]=all;
        sum[t[i].r]=all1;
        dp[i]=all2;
        dp[t[i].r]=all3;
    }
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d%d",&f[i],&t[i].l,&t[i].r);
    }
    dfs(1);
    ans=min(ans,dp[1]);
    change(1);
    printf("%d",ans);
}